using Acme.ELeMe.SDK.Api;

namespace Acme.ELeMe.SDK.Request;

public class ShopUpdateDto : ElmSign
{
    public ShopUpdateDto()
        : base("shop.update")
    {
    }

    public string shop_id { get; set; }

    public string baidu_shop_id { get; set; }

    public string Name { get; set; }

    public string shop_logo { get; set; }

    public string phone { get; set; }

    public string ivr_phone { get; set; }

    public string service_phone { get; set; }

    public List<string> service_phones { get; set; }

    public string longitude { get; set; }

    public string latitude { get; set; }

    public string coord_type { get; set; } = "amap";

    public ShopUpdateDeliveryRegion delivery_region { get; set; }

    public List<ShopUpdateBusinessTime> business_time { get; set; }

    
    /// <summary>   
    /// 是否可以提供发票;1:是;2:否;
    /// </summary>
    public int invoice_support { get; set; } = 1;

    public int package_box_price { get; set; }

    public int pick_time { get; set; }

    public string delivery_time_type { get; set; }

    public List<ImDataDTO> imData { get; set; }

    public int shipment_platform_computing { get; set; }

    public List<ShopUpdateSliceShipmentTime> slice_shipment_time { get; set; }

    public List<ShopUpdateSpecialShipmentTime> special_shipment_time { get; set; }

    public string invoice_settings { get; set; }

    public class ShopUpdateDeliveryRegion
    {
        public string delivery_fee = null;
        public string delivery_time = null;
        public string min_buy_free = "";
        public string min_order_price = null;
        public string name = null;
        public List<List<ShopUpdateRegion>>? region;
    }

    public class ShopUpdateRegion
    {
        public string latitude = null;
        public string longitude = null;
    }

    public class ShopUpdateBusinessTime
    {
        public string end = null;
        public string start = null;
    }

    public class ImDataDTO
    {
        public string? type { get; set; }

        public string? id { get; set; }
    }

    public class ShopUpdateSliceShipmentTime
    {
        public string? start { get; set; }

        public string? end { get; set; }

        public int time { get; set; }
    }

    public class ShopUpdateSpecialShipmentTime
    {
        public string? start_date { get; set; }

        public string? end_date { get; set; }

        public string? start_time { get; set; }

        public string? end_time { get; set; }

        public int time { get; set; }
    }
}